[INFO] cloning repository https://github.com/ZapAnton/toy_tracer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ZapAnton/toy_tracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZapAnton%2Ftoy_tracer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZapAnton%2Ftoy_tracer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 81535ad9552f9acfba2d1bad1a730b765bf89de6
[INFO] checking ZapAnton/toy_tracer against master#9610dfe5a9a731ced1ea4923ecbd0c57fe367898 for beta-170-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZapAnton%2Ftoy_tracer" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ZapAnton/toy_tracer on toolchain 9610dfe5a9a731ced1ea4923ecbd0c57fe367898
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ZapAnton/toy_tracer
[INFO] finished tweaking git repo https://github.com/ZapAnton/toy_tracer
[INFO] tweaked toml for git repo https://github.com/ZapAnton/toy_tracer written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/ZapAnton/toy_tracer already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded libc v0.2.49
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 471a6cb305c0a68c3f7ebd59aec938c6c9f27485ea2a937d430882bfa42f4aef
[INFO] running `Command { std: "docker" "start" "-a" "471a6cb305c0a68c3f7ebd59aec938c6c9f27485ea2a937d430882bfa42f4aef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "471a6cb305c0a68c3f7ebd59aec938c6c9f27485ea2a937d430882bfa42f4aef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "471a6cb305c0a68c3f7ebd59aec938c6c9f27485ea2a937d430882bfa42f4aef", kill_on_drop: false }`
[INFO] [stdout] 471a6cb305c0a68c3f7ebd59aec938c6c9f27485ea2a937d430882bfa42f4aef
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 521c00f102d459f0fc880dc9a975b64133e0ed10c59432c231d39cd45c51ac1a
[INFO] running `Command { std: "docker" "start" "-a" "521c00f102d459f0fc880dc9a975b64133e0ed10c59432c231d39cd45c51ac1a", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v0.1.2
[INFO] [stderr]     Checking rand_core v0.4.0
[INFO] [stderr]    Compiling libc v0.2.49
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking rand_jitter v0.1.3
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]     Checking rand_os v0.1.2
[INFO] [stderr]     Checking toy_tracer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]   --> src/material.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 19 |       fn scatter(&self, ray_in: &Ray, hit_record: &HitRecord) -> Option<ScatteredRay> {
[INFO] [stdout]    |                  -                                - let's call the lifetime of this reference `'1`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  let's call the lifetime of this reference `'2`
[INFO] [stdout] ...
[INFO] [stdout] 25 | /                 Some(ScatteredRay {
[INFO] [stdout] 26 | |                     ray: Ray::new(&hit_record.p, &(target - hit_record.p.borrow())),
[INFO] [stdout] 27 | |                     attenuation: albedo,
[INFO] [stdout] 28 | |                 })
[INFO] [stdout]    | |__________________^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a named lifetime parameter and update trait if needed
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn scatter<'a>(&'a self, ray_in: &Ray, hit_record: &'a HitRecord) -> Option<ScatteredRay> {
[INFO] [stdout]    |               ++++  ++                                  ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]   --> src/material.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 19 |       fn scatter(&self, ray_in: &Ray, hit_record: &HitRecord) -> Option<ScatteredRay> {
[INFO] [stdout]    |                  -                                - let's call the lifetime of this reference `'1`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  let's call the lifetime of this reference `'2`
[INFO] [stdout] ...
[INFO] [stdout] 25 | /                 Some(ScatteredRay {
[INFO] [stdout] 26 | |                     ray: Ray::new(&hit_record.p, &(target - hit_record.p.borrow())),
[INFO] [stdout] 27 | |                     attenuation: albedo,
[INFO] [stdout] 28 | |                 })
[INFO] [stdout]    | |__________________^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a named lifetime parameter and update trait if needed
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn scatter<'a>(&'a self, ray_in: &Ray, hit_record: &'a HitRecord) -> Option<ScatteredRay> {
[INFO] [stdout]    |               ++++  ++                                  ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]   --> src/material.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 19 |       fn scatter(&self, ray_in: &Ray, hit_record: &HitRecord) -> Option<ScatteredRay> {
[INFO] [stdout]    |                  -                    ---------- has type `&HitRecord<'3>`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  let's call the lifetime of this reference `'2`
[INFO] [stdout] ...
[INFO] [stdout] 25 | /                 Some(ScatteredRay {
[INFO] [stdout] 26 | |                     ray: Ray::new(&hit_record.p, &(target - hit_record.p.borrow())),
[INFO] [stdout] 27 | |                     attenuation: albedo,
[INFO] [stdout] 28 | |                 })
[INFO] [stdout]    | |__________________^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]   --> src/material.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 19 |       fn scatter(&self, ray_in: &Ray, hit_record: &HitRecord) -> Option<ScatteredRay> {
[INFO] [stdout]    |                  -                    ---------- has type `&HitRecord<'3>`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  let's call the lifetime of this reference `'2`
[INFO] [stdout] ...
[INFO] [stdout] 25 | /                 Some(ScatteredRay {
[INFO] [stdout] 26 | |                     ray: Ray::new(&hit_record.p, &(target - hit_record.p.borrow())),
[INFO] [stdout] 27 | |                     attenuation: albedo,
[INFO] [stdout] 28 | |                 })
[INFO] [stdout]    | |__________________^ method was supposed to return data with lifetime `'2` but it is returning data with lifetime `'3`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0515]: cannot return value referencing temporary value
[INFO] [stdout]   --> src/material.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 | /                 Some(ScatteredRay {
[INFO] [stdout] 26 | |                     ray: Ray::new(&hit_record.p, &(target - hit_record.p.borrow())),
[INFO] [stdout]    | |                                                   -------------------------------- temporary value created here
[INFO] [stdout] 27 | |                     attenuation: albedo,
[INFO] [stdout] 28 | |                 })
[INFO] [stdout]    | |__________________^ returns a value referencing data owned by the current function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0515]: cannot return value referencing temporary value
[INFO] [stdout]   --> src/material.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 | /                 Some(ScatteredRay {
[INFO] [stdout] 26 | |                     ray: Ray::new(&hit_record.p, &(target - hit_record.p.borrow())),
[INFO] [stdout]    | |                                                   -------------------------------- temporary value created here
[INFO] [stdout] 27 | |                     attenuation: albedo,
[INFO] [stdout] 28 | |                 })
[INFO] [stdout]    | |__________________^ returns a value referencing data owned by the current function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0515]: cannot return value referencing local variable `reflected`
[INFO] [stdout]   --> src/material.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 32 |                   let ray = Ray::new(&hit_record.p, &reflected);
[INFO] [stdout]    |                                                     ---------- `reflected` is borrowed here
[INFO] [stdout] 33 |                   if crate::dot(ray.direction, &hit_record.normal) > 0.0 {
[INFO] [stdout] 34 | /                     Some(ScatteredRay {
[INFO] [stdout] 35 | |                         ray: ray,
[INFO] [stdout] 36 | |                         attenuation: albedo,
[INFO] [stdout] 37 | |                     })
[INFO] [stdout]    | |______________________^ returns a value referencing data owned by the current function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0515]: cannot return value referencing local variable `reflected`
[INFO] [stdout]   --> src/material.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 32 |                   let ray = Ray::new(&hit_record.p, &reflected);
[INFO] [stdout]    |                                                     ---------- `reflected` is borrowed here
[INFO] [stdout] 33 |                   if crate::dot(ray.direction, &hit_record.normal) > 0.0 {
[INFO] [stdout] 34 | /                     Some(ScatteredRay {
[INFO] [stdout] 35 | |                         ray: ray,
[INFO] [stdout] 36 | |                         attenuation: albedo,
[INFO] [stdout] 37 | |                     })
[INFO] [stdout]    | |______________________^ returns a value referencing data owned by the current function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.material` which is behind a shared reference
[INFO] [stdout]   --> src/sphere.rs:41:21
[INFO] [stdout]    |
[INFO] [stdout] 41 |                     self.material,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^ move occurs because `self.material` has type `Material`, which does not implement the `Copy` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.material` which is behind a shared reference
[INFO] [stdout]   --> src/sphere.rs:57:21
[INFO] [stdout]    |
[INFO] [stdout] 57 |                     self.material,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^ move occurs because `self.material` has type `Material`, which does not implement the `Copy` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.material` which is behind a shared reference
[INFO] [stdout]   --> src/sphere.rs:41:21
[INFO] [stdout]    |
[INFO] [stdout] 41 |                     self.material,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^ move occurs because `self.material` has type `Material`, which does not implement the `Copy` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.material` which is behind a shared reference
[INFO] [stdout]   --> src/sphere.rs:57:21
[INFO] [stdout]    |
[INFO] [stdout] 57 |                     self.material,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^ move occurs because `self.material` has type `Material`, which does not implement the `Copy` trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0507, E0515.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0507`.
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0507, E0515.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0507`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `toy_tracer` (lib) due to 7 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `toy_tracer` (lib test) due to 7 previous errors
[INFO] running `Command { std: "docker" "inspect" "521c00f102d459f0fc880dc9a975b64133e0ed10c59432c231d39cd45c51ac1a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "521c00f102d459f0fc880dc9a975b64133e0ed10c59432c231d39cd45c51ac1a", kill_on_drop: false }`
[INFO] [stdout] 521c00f102d459f0fc880dc9a975b64133e0ed10c59432c231d39cd45c51ac1a
